My INI file
FOR NOVAKON PULSAR STEPPER EMC MACHINE = 1100-3 DEBUG = 0 DISPLAY DISPLAY = tormach_mill_ui.py POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 INTRO_GRAPHIC = tormach_mill_splash.gif INTRO_TIME = 2 PROGRAM_PREFIX = ~/gcode/subroutines INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in DEFAULT_LINEAR_VELOCITY = 1.83 DEFAULT_ANGULAR_VELOCITY = 0.6 GEOMETRY = XYZ REDIS # IMPORTANT: redis-server has a bad side effect where if *any* arguments are provided # it clears the default save parameters and then *never* saves changes. # The default save parameters must be restored by including them as args. # appendServerSaveParams(60*60,1); /* save after 1 hour and 1 change */ # appendServerSaveParams(300,100); /* save after 5 minutes and 100 changes */ # appendServerSaveParams(60,10000); /* save after 1 minute and 10000 changes */ SERVER_ARGS = --dir ~/mill_data --dbfilename dump.rdb --save 3600 1 --save 300 100 --save 60 10000 TASK TASK = milltask CYCLE_TIME = 0.010 RS274NGC PARAMETER_FILE = ~/mill_data/emc.var RS274NGC_STARTUP_CODE = G8 G17 G20 G90 # set bit 2 to fetch ini file values in g-code, #<_inisectionname> FEATURES = 12 SUBROUTINE_PATH = ~/tmc/configs/tormach_mill/nc_subs:~/tmc/subroutines:~/gcode/subroutines SINGLE_BLOCK_LOCAL_SUB = YES SINGLE_BLOCK_EXTERNAL_SUB = NO USER_M_PATH = nc_subs DEBUG = 0 # REMAPPING # for tool change commands REMAP=M6 modalgroup=6 prolog=zbotatc_M6_prolog ngc=m400 REMAP=M7 modalgroup=8 argspec=p py=smart_cool_M7 REMAP=M8 modalgroup=8 argspec=p py=smart_cool_M8 REMAP=M9 modalgroup=8 py=smart_cool_M9 # for various GUI functions REMAP=M600 modalgroup=10 argspec=PQ ngc=m600 REMAP=g30 modalgroup=1 argspec=xyza py=g300 REMAP=m998 modalgroup=5 argspec=xyza py=m998 REMAP=g50 modalgroup=1 py=g500 REMAP=g84 modalgroup=1 argspec=rpxyza prolog=cycle_prolog epilog=cycle_epilog py=g840 PYTHON TOPLEVEL= python/toplevel.py PATH_PREPEND= python LOG_LEVEL=0 EMCMOT EMCMOT = motmod COMM_TIMEOUT = 1.0 COMM_WAIT = 0.010 SERVO_PERIOD = 1000000 HOSTMOT2 # **** This is for info only **** # DRIVER0=hm2_pci # BOARD0=5i25 # BITFILE0 used by scripts - CHANGED to the NOVAKON.bit file for flashing the novakon BOB BITFILE0=mesa/novakon.bit HAL HALUI = halui HALFILE = novakon.hal # default is - tormach_mill_5i25.hal POSTGUI_SHUTTLEXPRESS_HALFILE = millshuttlexpress.hal POSTGUI_HALFILE = postgui_tormach_mill.hal TRAJ AXES = 4 COORDINATES = X Y Z A LINEAR_UNITS = inch ANGULAR_UNITS = degree DEFAULT_VELOCITY = 1.5 MAX_VELOCITY = 3.0 NO_FORCE_HOMING = 1 POSITION_FILE = ~/mill_data/position.txt DEFAULT_TOLERANCE = 0.002 DEFAULT_NAIVECAM_TOLERANCE = 0.0 EMCIO EMCIO = io CYCLE_TIME = 0.100 TOOL_TABLE = ~/mill_data/tool.tbl SPINDLE LO_RANGE_MIN = 0 LO_RANGE_MAX = 4500 HI_RANGE_MIN = 0 HI_RANGE_MAX = 4500 MIN_MCB_FREQUENCY = 100.0 #500 MAX_MCB_FREQUENCY = 10900 # I added following lines for Novakon servo spindle DIRSETUP = 1000 DIRHOLD = 1000 STEPLEN = 1000 STEPSPACE = 1000 STEP_SCALE = 166.66 MAX_VELOCITY = 450 MAX_ACCELERATION = 500 # PID tuning params - I added this section DEADBAND = 0 P = 500 I = 0 D = 0 FF0 = 0 FF1 = 1 FF2 = 0.00011 BIAS = 0 MAX_OUTPUT = 0 MAX_ERROR = 0.0005 # spindle acceleration to control motion.spindle-at-apeed # # seconds between spindle start command, contactor closure, and start of acceleration STARTUP_DELAY = 0.5 # MCB input 5450 Hz -> VFD 60 Hz # For 1100 S2/S3 VFD reads 140 Hz at max pulse stream from HAL of 10,000 pulses/sec # At 1.5 sec/100 Hz that works out to 2.1 sec to reach 140 Hz - full speed # Max speed 5140 RPM in high belt -> 2447.6 RPM/s^2 # Max speed 2000 RPM in low belt -> 952.4 RPM/s^2 # So 2.1 seconds should be enough but in practice 4.5 seconds to 5140 RPM was observed # For the hispeed spindle, 8.4 seconds total from VFD off to 24000 RPM was observed SECONDS_TO_MAX_RPM = .5 AXIS_0 TYPE = LINEAR HOME = 0.000 # 110 in/min MAX_VELOCITY = 1.833 MAX_ACCELERATION = 5.0 # 20 % higher max-vel and 50% higher maxaccel for backlash comp STEPGEN_MAX_VEL = 2.2 STEPGEN_MAXACCEL = 8.0 BACKLASH = 0.001 # jog shuttle ring speed MAX_JOG_VELOCITY_UPS = 1.8333 MIN_JOG_VELOCITY_UPS = 0.008333 # nanoseconds DIRSETUP = 8000 DIRHOLD = 8000 STEPLEN = 5000 STEPSPACE = 5000 # PID tuning params DEADBAND = 0 P = 50 I = 0 D = 0 FF0 = 0 FF1 = 1 FF2 = 0.00011 BIAS = 0 MAX_OUTPUT = 0 MAX_ERROR = 0.0005 SCALE = -10160.0 FERROR = 5.0 MIN_FERROR = 2.500 MIN_LIMIT = -0.01 MAX_LIMIT = 14.10000 HOME_OFFSET = -0.050 HOME_SEARCH_VEL = -1 HOME_LATCH_VEL = 0.050 HOME_IGNORE_LIMITS = YES HOME_SEQUENCE = 2 HOME_IS_SHARED = 1 AXIS_1 TYPE = LINEAR HOME = 0.000 # 110 in/min - Note these values are Inches per Second - so x60 for IPM MAX_VELOCITY = 1.833 MAX_ACCELERATION = 5.0 # 20 % higher STEPGEN_MAX_VEL = 2.2 STEPGEN_MAXACCEL = 8.0 BACKLASH = 0.0005 # jog shuttle ring speed MAX_JOG_VELOCITY_UPS = 1.8333 MIN_JOG_VELOCITY_UPS = 0.008333 # nanoseconds DIRSETUP = 8000 DIRHOLD = 8000 STEPLEN = 5000 STEPSPACE = 5000 # PID tuning params DEADBAND = 0 P = 50 I = 0 D = 0 FF0 = 0 FF1 = 1 FF2 = 0.00011 BIAS = 0 MAX_OUTPUT = 0 MAX_ERROR = 0.0005 SCALE = -10160.0 FERROR = 5.0 MIN_FERROR = 2.500 MIN_LIMIT = -0.01 MAX_LIMIT = 9.25 HOME_OFFSET = -0.05 HOME_SEARCH_VEL = -1 HOME_LATCH_VEL = 0.050 HOME_IGNORE_LIMITS = YES HOME_SEQUENCE = 1 HOME_IS_SHARED = 1 AXIS_2 TYPE = LINEAR HOME = 0.000 # 90 in/min MAX_VELOCITY = 1.500 MAX_ACCELERATION = 8.0 # 50 % higher STEPGEN_MAX_VEL = 2.0 STEPGEN_MAXACCEL = 12.0 BACKLASH = 0.0005 # jog shuttle ring speed MAX_JOG_VELOCITY_UPS = 1.5 MIN_JOG_VELOCITY_UPS = 0.008333 # nanoseconds DIRSETUP = 8000 DIRHOLD = 8000 STEPLEN = 5000 STEPSPACE = 5000 # PID tuning params DEADBAND = 0 P = 50 I = 0 D = 0 FF0 = 0 FF1 = 1 FF2 = 0.00011 BIAS = 0 MAX_OUTPUT = 0 MAX_ERROR = 0.0005 SCALE = 10160.0 FERROR = 5.0 MIN_FERROR = 2.500 MIN_LIMIT = -10.20 MAX_LIMIT = 0.000001 HOME_OFFSET = 0.01 HOME_SEARCH_VEL = 0.750 HOME_LATCH_VEL = -0.050 HOME_IGNORE_LIMITS = YES HOME_SEQUENCE = 0 HOME_IS_SHARED = 1 AXIS_3 TYPE = ANGULAR HOME = 0.0 MAX_VELOCITY = 22.0 MAX_ACCELERATION = 69.0 # 20 % higher STEPGEN_MAX_VEL = 26.4 STEPGEN_MAXACCEL = 82.8 # jog shuttle ring speed MAX_JOG_VELOCITY_UPS = 22.0 MIN_JOG_VELOCITY_UPS = 0.15 # nanoseconds DIRSETUP = 10000 DIRHOLD = 10000 STEPLEN = 8000 STEPSPACE = 5000 # PID tuning params DEADBAND = 0 P = 500 I = 0 D = 0 FF0 = 0 FF1 = 1 FF2 = 0.00011 BIAS = 0 MAX_OUTPUT = 0 MAX_ERROR = 0.0005 SCALE = 500.0 FERROR = 15.0 MIN_FERROR = 15.0 MIN_LIMIT = -99999.000 MAX_LIMIT = 99999.000000 # these set to 0.0 disables 4th axis homing HOME_OFFSET = 0.000 HOME_SEARCH_VEL = 0.000 HOME_LATCH_VEL = 0.000 # these value are used when 4th axis homing is enabled HOME_OFFSET_HOMING_KIT = 0.000 HOME_SEARCH_VEL_HOMING_KIT = 5.000 HOME_LATCH_VEL_HOMING_KIT = 0.500 HOME_IGNORE_LIMITS = YES HOME_SEQUENCE = 1